package com.sakura.system.controller.xycontroller;

import com.sakura.system.entity.xy.CinemaResult;
import com.sakura.system.entity.xy.Member;
import com.sakura.system.entity.xy.MemberQuery;
import com.sakura.system.service.impl.xyimpl.MemberService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@CrossOrigin
@RestController
@RequestMapping("${app.router.url}")
public class MemberController {
    @Resource
    MemberService memberService;

    /**
     * 查询会员列表的接口。根据传入的参数对会员信息进行查询，并返回相应的会员列表和总页数。
     * 参数说明：
     * - pageIndex: 查询的当前页码
     * - pageSize: 每页显示的记录数
     * - name: 会员姓名，可选，用于按姓名筛选
     * - birthdayQuery: 生日查询条件，可选。为空时表示不过滤生日，0表示当天过生日，7表示7天内过生日。
     * 返回值说明：
     * - key为list的数组：包含查询到的会员信息列表
     * - key为pageTotal的整型：表示总页数
     *
     * @param pageIndex 查询的当前页码
     * @param pageSize 每页显示的记录数
     * @param name 会员姓名，用于按姓名筛选
     * @param birthdayQuery 生日查询条件
     * @return CinemaResult 包含查询结果的影院结果对象
     */
    @RequestMapping("memberData")
    public CinemaResult getMemberData(String pageIndex, String pageSize, String name, String birthdayQuery){
        MemberQuery query = new MemberQuery();
        // 解析并设置查询的页码和每页记录数
        if(StringUtils.isNotBlank(pageIndex)){
            query.setPageIndex(Integer.parseInt(pageIndex), Integer.parseInt(pageSize));
        }
        // 设置查询的会员姓名，如果提供
        if(StringUtils.isNotBlank(name)){
            query.setName(name);
        }

        // 调用服务层方法，进行会员数据查询
        return memberService.getMemberData(query, birthdayQuery);
    }


    @RequestMapping("memberRegister")
    public CinemaResult memberRegister(Member member){
        return memberService.memberRegister(member);
    }
    /**
     * //会员删除，参数MemberId，返回Result
     * export const delMember = query=>{
     *     return request({
     *         url:'delMember',
     *         method:'get',
     *         params:query
     *     });
     * };
     */
    @RequestMapping("delMember")
    public CinemaResult delMember(Member member){
        System.out.println(member);
        return memberService.delMember(member.getmemberId());
    }
    /**
     * //修改会员信息，参数Member，返回Result
     * export const modifyMember = query=>{
     *     return request({
     *         url:'modifyMember',
     *         method:'get',
     *         params:query
     *     });
     * };
     */
    @RequestMapping("modifyMember")
    public CinemaResult modifyMember(Member member){
        return memberService.modifyMember(member);
    }

    /**
     * //会员登录，参数memberId，返回200
     * export const loginMember = query=>{
     *     return request({
     *         url:'loginMember',
     *         method:'get',
     *         params:query
     *     });
     * };
     */
    @RequestMapping("loginMember")
    public CinemaResult loginMember(Member member){
        if(memberService.loginMember(member)!=null){
            return CinemaResult.ok();
        }else{
            return CinemaResult.build(500,"无此账号");
        }
    }

}
